classes (Sec. 9.8). Because shared file pointer functions are not
supported, the MMMMPPPPIIII____MMMMOOOODDDDEEEE____SSSSEEEEQQQQUUUUEEEENNNNTTTTIIIIAAAALLLL file access mode to MMMMPPPPIIII____FFFFiiiilllleeee____ooooppppeeeennnn is
also not supported.
LLLLiiiimmmmiiiittttaaaattttiiiioooonnnnssss
The MPI I/O routines have the following limitations:
* Beginning with MPT 1.6, the _s_t_a_t_u_s argument is set following all
read, write, MMMMPPPPIIIIOOOO____TTTTeeeesssstttt, and MMMMPPPPIIIIOOOO____WWWWaaaaiiiitttt functions. Consequently,
MMMMPPPPIIII____GGGGeeeetttt____ccccoooouuuunnnntttt and MMMMPPPPIIII____GGGGeeeetttt____eeeelllleeeemmmmeeeennnnttttssss will now work when passed the
status object from these operations. Previously, they did not.
* All nonblocking I/O functions use a MMMMPPPPIIIIOOOO____RRRReeeeqqqquuuueeeesssstttt object instead of
the usual MMMMPPPPIIII____RRRReeeeqqqquuuueeeesssstttt object. Accordingly, two functions, MMMMPPPPIIIIOOOO____TTTTeeeesssstttt
and MMMMPPPPIIIIOOOO____WWWWaaaaiiiitttt are provided to wait and test on these MMMMPPPPIIIIOOOO____RRRReeeeqqqquuuueeeesssstttt
objects. They have the same semantics as MMMMPPPPIIII____TTTTeeeesssstttt and MMMMPPPPIIII____WWWWaaaaiiiitttt, as
shown in the following synopsis:
int MPIO_Test(MPIO_Request *_r_e_q_u_e_s_t, int *_f_l_a_g,
MPI_Status *_s_t_a_t_u_s);
int MPIO_Wait(MPIO_Request *_r_e_q_u_e_s_t, MPI_Status *_s_t_a_t_u_s);
The usual functions, MMMMPPPPIIII____TTTTeeeesssstttt, MMMMPPPPIIII____WWWWaaaaiiiitttt, MMMMPPPPIIII____TTTTeeeessssttttaaaannnnyyyy, and so on, do
not work for nonblocking I/O.
* All functions return only two possible error codes: MMMMPPPPIIII____SSSSUUUUCCCCCCCCEEEESSSSSSSS on
success and MMMMPPPPIIII____EEEERRRRRRRR____UUUUNNNNKKKKNNNNOOOOWWWWNNNN on failure.
* End-of-file is not detected. The individual file pointer is
increased by the requested amount of data and not by the actual
amount of data read. Therefore, after end-of-file is reached,
MMMMPPPPIIII____FFFFiiiilllleeee____ggggeeeetttt____ppppoooossssiiiittttiiiioooonnnn(3) returns a wrong offset.
DDDDiiiirrrreeeecccctttt IIII////OOOO
MPI I/O supports direct access to files stored in XFS filesystems. Direct
access bypasses the system's buffer cache, leading to better performance
in some specialized cases. You can enable direct I/O for read and write
operations by setting the appropriate environment variable(s),
MPIO_DIRECT_READ or MPIO_DIRECT_WRITE, to the string "TRUE," as in the